Ubuntu 14.04下Django和MySQL环境部署全过程
<p><strong>简要步骤。(Ubuntu14.04)</strong></p>
<ul>
<li>
Python安装</li>
<li>
Django
</li>
<li>
Mysql的安装与配置</li>
</ul>
<p>
记录一下我的部署过程,也方便一些有需要的童鞋,大神勿喷~</p>
<p>
<strong>一、Python环境搭建</strong></p>
<p>
操作系统Ubuntu14.04,自带Python2.7.6</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterpy" id="highlighter_195967">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="py plain">im@</code><code class="py value">58user</code><code class="py plain">:</code><code class="py keyword">/</code><code class="py plain">$ python</code>
</div>
<div class="line number2 index1 alt1">
<code class="py plain">Python </code><code class="py value">2.7</code><code class="py plain">.</code><code class="py value">6</code> <code class="py plain">(default, </code><code class="py functions">Oct</code> <code class="py value">26</code> <code class="py value">2016</code><code class="py plain">, </code><code class="py value">20</code><code class="py plain">:</code><code class="py value">30</code><code class="py plain">:</code><code class="py value">19</code><code class="py plain">) </code>
</div>
<div class="line number3 index2 alt2">
<code class="py plain"> on linux2</code>
</div>
<div class="line number4 index3 alt1">
<code class="py functions">Type</code> <code class="py string">"help"</code><code class="py plain">, </code><code class="py string">"copyright"</code><code class="py plain">, </code><code class="py string">"credits"</code> <code class="py keyword">or</code> <code class="py string">"license"</code> <code class="py keyword">for</code> <code class="py plain">more information.</code>
</div>
<div class="line number5 index4 alt2">
<code class="py plain">>>></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>二、Django环境搭建</strong></p>
<p>
目前Django的版本已经到1.11了。先去官网下载Linux对应的文件,然后解压&安装。(官网下载地址)</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_816411">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">tar</code> <code class="bash plain">xzvf Django-1.11.x.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">cd</code> <code class="bash plain">Django-1.11.x</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">python setup.py </code><code class="bash functions">install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
这时可能会提示ImportError: <code>No module named setuptools</code></p>
<p>
执行</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_523638">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">https:</code><code class="bash plain">//bootstrap</code><code class="bash plain">.pypa.io</code><code class="bash plain">/ez_setup</code><code class="bash plain">.py -O - | </code><code class="bash functions">sudo</code> <code class="bash plain">python</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
然后执行</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterpy" id="highlighter_347464">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="py plain">python setyp.py install```</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
到此Django安装成功~!</p>
<p>
<strong>三、Mysql安装</strong></p>
<p>
执行一下命令,运行过程中可能需要输入root密码并进行确认。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_912633">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">mysql-server mysql-client</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libmysqld-dev</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
然后链接MySQL和Python</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_423461">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">python-dev</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">sudo</code> <code class="bash plain">wget https:</code><code class="bash plain">//pypi</code><code class="bash plain">.python.org</code><code class="bash plain">/packages/source/M/MySQL-python/MySQL-python-1</code><code class="bash plain">.2.5.zip</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">unzip MySQL-python-1.2.5.zip</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash functions">cd</code> <code class="bash plain">MySQL-python-1.2.5/</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">python setup.py </code><code class="bash functions">install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
进入mysql数据库的方式:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_669020">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">> * sudo mysql</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">* mysql -u root -p </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">然后输入密码</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>四、给mysql设置root密码</strong></p>
<p>
先以第一种方式进入mysql</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_140597">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">mysql> use mysql;</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">Reading table information for completion of table and column names</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">You can turn off this feature to get a quicker startup with -A</code>
</div>
<div class="line number4 index3 alt1">
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">Database changed</code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">mysql> update user set Password = PASSWORD(‘root') where User ='root';</code>
</div>
<div class="line number7 index6 alt2">
<code class="plain plain">Query OK, 3 rows affected (0.00 sec)</code>
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">Rows matched: 3 Changed: 3 Warnings: 0</code>
</div>
<div class="line number9 index8 alt2">
<code class="plain plain">mysql> exit</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
括号里面的'root'就是新的密码</p>
<p>
<strong>五、新建项目</strong></p>
<p>
到了验证结果的时候了</p>
<p>
将当前目录切换到Python的worspace下,输入新建的项目名称:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterpy" id="highlighter_699583">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="py plain">im@</code><code class="py value">58user</code><code class="py plain">:~</code><code class="py keyword">/</code><code class="py plain">PythonProjects$django</code><code class="py keyword">-</code><code class="py plain">admin.py startproject Hello</code>
</div>
<div class="line number2 index1 alt1">
<code class="py plain">im@</code><code class="py value">58user</code><code class="py plain">:~</code><code class="py keyword">/</code><code class="py plain">PythonProjects$ cd Hello</code><code class="py keyword">/</code>
</div>
<div class="line number3 index2 alt2">
<code class="py plain">im@</code><code class="py value">58user</code><code class="py plain">:~</code><code class="py keyword">/</code><code class="py plain">PythonProjects</code><code class="py keyword">/</code><code class="py plain">Hello$ tree</code>
</div>
<div class="line number4 index3 alt1">
<code class="py plain">├── Hello</code>
</div>
<div class="line number5 index4 alt2">
<code class="py plain">│ ├── init.py</code>
</div>
<div class="line number6 index5 alt1">
<code class="py plain">│ ├── settings.py</code>
</div>
<div class="line number7 index6 alt2">
<code class="py plain">│ ├── urls.py</code>
</div>
<div class="line number8 index7 alt1">
<code class="py plain">│ └── wsgi.py</code>
</div>
<div class="line number9 index8 alt2">
<code class="py plain">└── manage.py</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<ol>
<li>
* __init__.py:Python特性,可以是空文件,表明这个文件夹是一个可以导入的包。</li>
<li>
* settings.py:配置文件,本文主要修改数据库信息、模板目录、加载模块的信息。</li>
<li>
* url.py:URL配置文件,指定函数与URL的映射关系。</li>
<li>
* wsgi.py:本文中不会使用,nginx/apache+wsgi在生产环境中运行Django时使用</li>
</ol>
<p>
接下来我们写一个HelloWorld页面。</p>
<p>
在Hello文件下的一级目录创建views.py文件</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_833175">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">im@58user:~/PythonProjects/Hello$ touch views.py</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">im@58user:~/PythonProjects/Hello$ ls</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">Hello manage.py views.py</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">im@58user:~/PythonProjects/Hello$ tree</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">.</code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">├── Hello</code>
</div>
<div class="line number7 index6 alt2">
<code class="plain plain">│ ├── init.py</code>
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">│ ├── settings.py</code>
</div>
<div class="line number9 index8 alt2">
<code class="plain plain">│ ├── urls.py</code>
</div>
<div class="line number10 index9 alt1">
<code class="plain plain">│ └── wsgi.py</code>
</div>
<div class="line number11 index10 alt2">
<code class="plain plain">├── manage.py</code>
</div>
<div class="line number12 index11 alt1">
<code class="plain plain">└── views.py</code>
</div>
<div class="line number13 index12 alt2">
</div>
<div class="line number14 index13 alt1">
<code class="plain plain">1 directory, 6 files</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
在views.py文件中写入下面代码</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_241393">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">from django.http import HttpResponse</code>
</div>
<div class="line number2 index1 alt1">
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">def hello(request):</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">return HttpResponse(“Hello World~!~!”)</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
然后再将路径添加在urls.py文件中</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_896471">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">from django.conf.urls import url</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">from django.contrib import admin</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">from views import hello</code>
</div>
<div class="line number4 index3 alt1">
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">urlpatterns = [</code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">url(r'^admin/‘, admin.site.urls),</code>
</div>
<div class="line number7 index6 alt2">
<code class="plain plain">url(r'^hello/‘, hello),</code>
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">]</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
然后在Hello目录下执行<code>python manage.py runserver 0.0.0.0:8080</code></p>
<p>
启动服务器</p>
<p>
打开浏览器访问<code>http://127.0.0.1:8000/hello/ </code>可以看到展示结果。</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Ubuntu 14.04下Django和MySQL环境部署全过程" alt="Ubuntu 14.04下Django和MySQL环境部署全过程" src="https://zhuji.jb51.net/uploads/img/202305/594f06956bafead21194b24dcfefabd5.jpg"></p>
<p>
<strong>总结</strong></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。</p>
頁:
[1]