简介
Django是一个由Python编写的具有完整架站能力的开源Web框架。使用Django,只要很少的代码,Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。
安装
请参考:http://www.liujiangblog.com/course/django/85
理解
Django的全局配置文件,位于项目目录下的 settings.py
DEBUG:是否开启debug模式,当为True开启时,需要配置ALLOWED_HOSTS,不能为空
INSTALLED_APPS:项目新注册的模块,如上图的login文件夹,里面包括是login项目的所有代码
TEMPLATES:前端代码的模板,后面的页面可以继承这个模板页面;主要配置模板路径和名称
'DIRS': [os.path.join(BASE_DIR, 'templates')]
DATABASES:数据库配置,默认使用的是sqlite3,当然也可以使用MySQL、mongo
当配置完成之后,就可以添加app模块了,添加之后,如下
这时,我们就可以设计数据库表了,在models.py文件中
from django.db import modelsclass User(models.Model): gender = ( ('male', "男"), ('female', "女"), ) name = models.CharField(max_length=128, unique=True) password = models.CharField(max_length=256) email = models.EmailField(unique=True) sex = models.CharField(max_length=32, choices=gender, default="男") c_time = models.DateTimeField(auto_now_add=True) has_confirmed = models.BooleanField(default=False) def __str__(self): return self.name class Meta: ordering = ["-c_time"] verbose_name = "用户" verbose_name_plural = "用户"
这个class创建了一个User表,其中有字段:name、password、email、sex、c_time、has_confirm
最后运行命令 python manage.py makemigrations 完成数据库表的创建 可以通过PyCharm工具查看创建的表
然后可以开始写接口了,开始编辑login下面的view.py
import hashlibfrom django.shortcuts import renderfrom django.shortcuts import redirectfrom login import modelsfrom login.models import Userimport timefrom django.conf import settingsimport datetime# Create your views here.def index(request): print(request.session.get("is_login") is None) if request.session.get("is_login") is None: return render(request, 'login/index.html') else: return redirect('/home')def login(request): if request.session.get("is_login") is True: return redirect('/home') if request.method == "POST": username = request.POST.get('username') password = request.POST.get('password') message = "所有字段都是必填" if username and password: username = username.strip() try: user = User.objects.get(name=username) if user.password == password: request.session['is_login'] = True request.session['username'] = username return redirect('/home') else: message = "密码错误" except: message = "用户名不存在" return render(request, 'login/login.html', {"message": message}) return render(request, 'login/login.html')
在template 下面创建HTML页面,完成前端代码逻辑
最后运行项目,在浏览器访问,如图:
项目代码已上传GitHub:https://github.com/zengfuyang/myweb
整个项目参考 http://www.liujiangblog.com/course/django/2