Django 入门初探

简介

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 models


class 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 hashlib

from django.shortcuts import render
from django.shortcuts import redirect
from login import models
from login.models import User
import time
from django.conf import settings
import 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 

 

posted @ 2019-01-02 16:10  老阳  阅读(202)  评论(0编辑  收藏  举报