Django Web框架使用
Django连接Mysql数据库,实现用户注册功能——
PS:先记录一下:
sqlite数据库是django创建web项目默认生成的,在settings.py 中进行设置的时候,NAME属性需要填写完整的db.sqlite3数据库的路径;
而在使用Mysql数据库的时候,NAME属性为所使用的数据库的名字
这个实例本来是Django自己创建的数据库,我想使用mysql数据库,很简单的修改——从sqlite数据库转成mysql数据库
1、首先创建一个web项目,django-admin.py startproject mysite
cd 进入项目目录下,创建app django-admin.py startapp login
2、创建模型,在models.py中添加类user
class User(models.Model):
username = models.CharField(max_length=50)
password = models.CharField(max_length=50)
def __unicode__(self):
return self.username
3、编写login目录下的views文件,创建视图操作
#coding=utf-8
from django.shortcuts import render,render_to_response
from django.http import HttpResponse,HttpResponseRedirect
from django.template import RequestContext
from django import forms
from models import User #引入models中的User模型
def regist(req):
if req.method == 'POST':
uf = UserForm(req.POST)
if uf.is_valid():
#获得表单数据
username = uf.cleaned_data['username']
password = uf.cleaned_data['password']
#添加到数据库
User.objects.create(username= username,password=password)
return HttpResponse('regist success!!')
else:
uf = UserForm()
return render_to_response('regist.html',{'uf':uf}, context_instance=RequestContext(req))
4、python manage.py syncdb 后在sqlite中创建各个模型的数据库
这时候如果直接manage.py runserver 登录网站进行注册时报错,没有数据库login_user
需要进行python manage.py makemigrations
然后manage.py migrate
之后注册成功,sqlite数据库中显示插入的注册数据
5、将sqlite数据库改成mysql数据库,需要修改settings.py中的DATABASE字段信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test', #这里的test是mysql中的一个数据库
'USER': 'root',
'PASSWORD': '***',
'HOST': '127.0.0.1',
'PORT': '3306',
之后运行manage.py syncdb 可以在test中生成相应的数据表
6、启动服务器,输入网址进行注册操作,可以在test数据库的login_user 表中看到注册的数据