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:8000pycharm中可以将runserver 127.0.0.1:8000写到参数中Run/Debug Congurations中:
然后就可以直接Shift+F10启动服务器了:
在浏览器输入你服务器的ip及端口号就可以正常启动了。
Django 模板
Django 模板的应用,模板是一个文本,用于分离文档的表现形式和内容。
模板应用实例
在 HelloWorld 目录底下创建 templates 目录并建立 hello.html文件
hello.html 文件代码如下:
HelloWorld/templates/hello.html 文件代码:
从模板中我们知道变量使用了双括号。
接下来我们需要向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS 为[BASE_DIR+"/templates",]
修改 view.py,增加一个新的对象,用于向模板提交数据:
HelloWorld/HelloWorld/view.py 文件代码:
可以看到,我们这里使用 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: 文件代码:
这里添加了中文注释,所以你需要在 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定义模型
创建 APP
Django规定,如果要使用模型,必须要创建一个app。我们使用以下命令创建一个 TestModel 的 app:
python manage.py startapp TestModel
修改 TestModel/models.py 文件,代码如下:
HelloWorld/TestModel/models.py: 文件代码:
以上的类名代表了数据库表名,且继承了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: 文件代码:
添加数据
添加数据需要先创建对象,然后再执行 save 函数,相当于SQL中的INSERT:
HelloWorld/HelloWorld/testdb.py: 文件代码:
访问 http://127.0.0.1:8000/testdb 就可以看到数据添加成功的提示。