您的位置:首页 > 数据库 > SQL

Django(一)基于mysql的网页

2016-05-03 23:44 696 查看

Django(一)基于mysql的网页

Django是一个开源代码的web代码框架,其基于mvc框架,m为模型,v为视图,c为控制,一种优秀的软件设计典范,用业务逻辑、数据、界面显示分离的方法组织代码。

本文即将搭建一个简单的评论网页,其使用mysql作为数据存储后端。

1、mysq安装:

参见本博客中的mysql安装

安装完成后,需要下载python的mysql:MySQL-pyton,不过官网上的下载不支持64位数,下载的过程中会报错,因此需要64位安装包。

问题1:找不到python2.7,无法安装:

实际上,当我们用python去查的时候,可以看到该pyhon的版本是2.7.1,根据相关资料,其原因是因为64位需要再进行注册一番:

import sys

from _winreg import *

# tweak as necessary

version = sys.version[:3]

installpath = sys.prefix

regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)

installkey = "InstallPath"

pythonkey = "PythonPath"

pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (

installpath, installpath, installpath

)

def RegisterPy():

try:

reg = OpenKey(HKEY_CURRENT_USER, regpath)

except EnvironmentError as e:

try:

reg = CreateKey(HKEY_CURRENT_USER, regpath)

SetValue(reg, installkey, REG_SZ, installpath)

SetValue(reg, pythonkey, REG_SZ, pythonpath)

CloseKey(reg)

except:

print "*** Unable to register!"

return

print "--- Python", version, "is now registered!"

return

if (QueryValue(reg, installkey) == installpath and

QueryValue(reg, pythonkey) == pythonpath):

CloseKey(reg)

print "=== Python", version, "is already registered!"

return

CloseKey(reg)

print "*** Unable to register!"

print "*** You probably have another Python installation!"

if __name__ == "__main__":

RegisterPy()

在python下执行该脚本,就可以将python进行注册。

问题2:版本不正确:

由于刚开始从官网上下载的是1.2.5版本的mysql,信息已经被写入,后续再安装1.2.3的64位的mysql-python时候,使用import
MySQLdb时候,报错显示版本不匹配。这个时候,就要使用pip卸载:

可以先用pip list查看安装包,其中MySQL-python的安装信息,包括版本号。然后使用pip uninstall MySQL-python卸载。卸载完成后,重新安装64位版本。

安装完成之后,关闭dos窗口,重新打开:这时候,再进行导入即可:



2、Windows下安装Django:

这里先在windows下安装Django,下载包地址:

https://www.djangoproject.com/download/

下载完成后解压到文件,执行python setup.py install进行安装
安装完成后,执行命令,查看是否正常:



3、windows下pip安装:

为了方便使用,windows下的pip安装是必要的,pip地址:

http://my.oschina.net/uxstone/blog/511971?fromerr=2JTEGBmb

执行python get-pip.py即可安装

或者下载源码包:
https://pypi.python.org/pypi/pip#downloads 然后执行python setup.py install
验证pip:
执行pip list可知道pip是否正常安装

4、使用Django配置:

配置1:无法执行py文件:

在任意目录下使用django-admin.py startproject myproject进行测试,发现并没有生成相应的工程myproject。这里会有一些问题:需要将注册表中的数值项改为:
HKEY_CLASSES_ROOTpy_auto_fileshellopencommand 将值"C:Python27python.exe""%1" 改为 "C:Python27python.exe""%1"%*
完成后,运行:django-admin starproject myproject进行配置即可,即可发现生曾了对应的文件:



配置2:安装数据库(由于我们使用了mysql,故这里不需要再安装sqlite,如果要安装,请参考如下:)
进入该文件夹,执行manage runserver,发现无法连接到数据库,要是在ubuntu下,可直接使用sudo
apt-get安装sqlite(windows下需要编译),但是是在windows下,真是好纠结,还需要手动安装SQL数据库,也是醉了,django的数据库:
https://docs.djangoproject.com/en/1.9/topics/install/#database-installation
配置3:执行python manage.py migrate的时候报错:unable to open
database file:
网上查了很多文献,但是很多都是说的是没有使用绝对路径,但是将setting怎么进行更改都不可以,发现可能不是这个错误:



查看日志,可能是sqlite没有产生正确的数据库,因此自己用python先调试一下。



发现含有中文字符的路径可以无法产生db文件,因此这个错误是因为路径中包含了中文字符,也是醉了醉了……采用纯英文路径后,就可以正常的使用该数据库。
配置4:Errno 10013:
在使用django的时候,有时候会报出10013错误:



出现这个错误的原因是:8000端口被占用,比如,酷狗可能会占用这个端口,故将酷狗退出,或者调用python manage.py runserver的时候指定另外一个端口。

5、创建第一个工程:

S1、创建链接的数据库:



S2、创建工程:

django-admin startproject mysite

python manage.py migrate

python manage.py runserver

python manage.py startapp polls

在setting中加入该应用名称,然后执行下面三条命令进行数据库迁移:

python manage.py makemigrations polls

python manage.py sqlmigrate polls 0001

python manage.py migrate

S3、测试:

Python manage.py runserver

输入127.0.0.1:8000查看是否正常使用。

6、数据库中插入我们的数据:

6a)、建库:

create database csvt default charset=utf8;

6b)、查询:



其实,在我们没有更改mysql的时候,是默认使用sqlite进行数据的存储,因此,在我们的mysql数据库中是查询不到的。

所以,当我们需要使用数据时候,需要自己在数据库中进行建表:

未完待续……

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: