Django框架及MySQL安装配置

Django框架

参考链接:http://www.runoob.com/django/django-tutorial.html

这个网站写的很详细,但是MySQL的启动以及MySQL、Python连接部分写的不太详细。

使用 django-admin.py 来创建 HelloWorld 项目:

django-admin.py startproject HelloWorld

接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:

python manage.py runserver 127.0.0.1:8000
pycharm中可以将runserver 127.0.0.1:8000写到参数中Run/Debug Congurations中:

然后就可以直接Shift+F10启动服务器了:

在浏览器输入你服务器的ip及端口号就可以正常启动了

Django 模板

 Django 模板的应用,模板是一个文本,用于分离文档的表现形式和内容。

模板应用实例

在 HelloWorld 目录底下创建 templates 目录并建立 hello.html文件

hello.html 文件代码如下:

HelloWorld/templates/hello.html 文件代码:

< h1 > {{ hello }} </ h1 >

从模板中我们知道变量使用了双括号。

接下来我们需要向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS 为[BASE_DIR+"/templates",]

修改 view.py,增加一个新的对象,用于向模板提交数据:

HelloWorld/HelloWorld/view.py 文件代码:

# -*- coding: utf-8 -*-  
#from django.http import HttpResponse
from django . shortcuts import render  
def hello ( request ) :
context = {}
context [ ' hello ' ] = ' Hello World! '
return render ( request , ' hello.html ' , context )

可以看到,我们这里使用 render 来替代之前使用的 HttpResponse。render 还使用了一个字典 context 作为参数。

context 字典中元素的键值 "hello" 对应了模板中的变量 "{{ hello }}"。

再访问访问 http://127.0.0.1:8000/hello,可以看到页面:

Django 模型

Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。

MySQL 是 Web 应用中最常用的数据库。 MySQL 教程 

MySQL安装配置

MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的。如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装一般MySQL将会安装在C:\Program Files\MySQL\MySQL Server 5.6 该目录中;zip格式是自己解压,解压缩之后其实MySQL就可以使用了,但是要进行配置。

这是因为没有配置环境变量所致。配置环境变量很简单:

我的电脑->属性->高级->环境变量

选择PATH,在其后面添加: 你的mysql bin文件夹的路径 (如:C:\Program Files\MySQL\MySQL Server 5.6\bin )

PATH=.......;C:\Program Files\MySQL\MySQL Server 5.6\bin (注意是追加,不是覆盖)

配置完环境变量之后先别忙着启动mysql,我们还需要修改一下配置文件(如果没有配置,之后启动的时候就会出现图中的错误哦!:错误2 系统找不到文件),mysql-5.6.1X默认的配置文件是在C:\Program Files\MySQL\MySQL Server 5.6\my-default.ini,或者自己建立一个my.ini文件,

在其中修改或添加配置(如图): 

[mysqld] 

basedir=C:\Program Files\MySQL\MySQL Server 5.6(mysql所在目录) 

datadir=C:\Program Files\MySQL\MySQL Server 5.6\data (mysql所在目录\data)

以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够),

输入:cd C:\Program Files\MySQL\MySQL Server 5.6\bin 进入mysql的bin文件夹(不管有没有配置过环境变量,也要进入bin文件夹,否则之后启动服务仍然会报错误2)

输入mysqld -install(如果不用管理员身份运行,将会因为权限不够而出现错误:Install/Remove of the Service Denied!) 

安装成功

安装成功后就要启动服务了,继续在cmd中输入:net start mysql,服务启动成功!(停止服务:net stop mysql)

如果是5.7版本的话,则要输入:net start mysql57 (net stop mysql57)

此时很多人会出现错误,注意:这个时候经常会出现错误2和错误1067。

如果出现“错误2 系统找不到文件”,检查一下是否修改过配置文件或者是否进入在bin目录下操作,如果配置文件修改正确并且进入了bin文件夹,需要先删除mysql(输入 mysqld -remove)再重新安装(输入 mysqld -install);如果出现错误1067,那就是配置文件修改错误,确认一下配置文件是否正确。

服务启动成功之后,就可以输入mysql -u root -p登录

Django数据库配置

我们在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为:

HelloWorld/HelloWorld/settings.py: 文件代码:

DATABASES = {  
' default ' : {  
' ENGINE ' : ' django.db.backends.mysql ' , # 或者使用 mysql.connector.django
' NAME ' : ' test ' ,
' USER ' : ' test ' ,
' PASSWORD ' : ' test123 ' ,
' HOST ' : ' localhost ' ,
' PORT ' : ' 3306 ' , }
}

这里添加了中文注释,所以你需要在 HelloWorld/settings.py 文件头部添加 # -*- coding: UTF-8 -*-

上面包含数据库名称和用户的信息,它们与 MySQL 中对应数据库和用户的设置相同。Django 根据这一设置,与 MySQL 中相应的数据库和用户连接起来。

其中的NAME即为数据库名称。

此时启动服务可能找不到mysqldb

No module named mysqldb

使用python需要连接MySQL,在配置文件中填正确用户名和密码之后,运行python manage.py syncdb,报如下错误    backend = load_backend(db['ENGINE'])
File "D:\Program Files\python\Lib\site-packages\django\db\utils.py", line 32,
in load_backend
return import_module('.base', backend_name)
File "D:\Program Files\python\Lib\site-packages\django\utils\importlib.py", li
ne 35, in import_module
__import__(name)
File "D:\Program Files\python\Lib\site-packages\django\db\backends\mysql\base.
py", line 14, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No mo
dule named MySQLdb。

解决方法:安装已编译版本:

http://www.codegood.com/downloads

根据自己系统下载,双击安装,搞定

然后import MySQLdb,查看是否成功

 例如:win7,64位,2.7版本

MySQL-python-1.2.3.win-amd64-py2.7.exe

另一种方法自己编译安装, 参见http://blog.csdn.net/wklken/article/details/7253245
连上数据库之后就可以继续bunoob上的学习了。

定义模型

创建 APP

Django规定,如果要使用模型,必须要创建一个app。我们使用以下命令创建一个 TestModel 的 app:

python manage.py startapp TestModel

修改 TestModel/models.py 文件,代码如下:

HelloWorld/TestModel/models.py: 文件代码:

# models.py from django . db import models class Test ( models . Model ) : name = models . CharField ( max_length = 20 )

以上的类名代表了数据库表名,且继承了models.Model,类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。

接下来在settings.py中找到INSTALLED_APPS这一项,如下:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'TestModel',               # 添加此项
)

在命令行中运行:

$ python manage.py migrate   # 创建表结构

$ python manage.py makemigrations TestModel  # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate TestModel   # 创建表结构

表名组成结构为:应用名_类名(如:TestModel_test)。

注意:尽管我们没有在models给表设置主键,但是Django会自动添加一个id作为主键。

数据库操作

接下来我们在 HelloWorld 目录中添加 testdb.py 文件(下面介绍),并修改 urls.py:

HelloWorld/HelloWorld/urls.py: 文件代码:

from django . conf . urls import * from . import view , testdb urlpatterns = [ url ( r ' ^hello$ ' , view . hello ) , url ( r ' ^testdb$ ' , testdb . testdb ) , ]

添加数据

添加数据需要先创建对象,然后再执行 save 函数,相当于SQL中的INSERT:

HelloWorld/HelloWorld/testdb.py: 文件代码:

# -*- coding: utf-8 -*- from django . http import HttpResponse from TestModel . models import Test # 数据库操作 def testdb ( request ) : test1 = Test ( name = ' runoob ' ) test1 . save ( ) return HttpResponse ( " <p>数据添加成功!</p> " )

访问 http://127.0.0.1:8000/testdb 就可以看到数据添加成功的提示。

猜你喜欢

转载自blog.csdn.net/xyj1536214199/article/details/62057184