工具及版本:
Django 1.11+Python 2.7+mysql+Pycharm
介绍:
本例完成django静态开发,将用户信息存至mysql数据库,并可展示出来所有用户数据。主要包括以下四部分:
1. 新建项目
a) 在pycharm内新建django项目userproject:
b)运行开发服务器测试项目
2. 新建应用
a)新建应用app_user(Run manage.py startapp app_user)
b)配置mysql数据库,在项目工程文件的setting文件中修改:在databases下将sqlite3配置注释,添加新的配置说明,其中Name为已建好的数据库名,其他按个人mysql数据库相关属性配置即可。(django项目默认数据库为sqlite3,若直接使用则不必另行配置)
3. 开始应用
1. 数据表建立:用户名及密码定义(models.py)
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class message(models.Model):
username = models.CharField(max_length=20)
password = models.CharField(max_length=15)1
2
3
4
5
6
7
8
9
10
11
在settings文件内INSTALLED_APPS添加新建app名称,其他的可以注释掉(本例中未注释)
依次运行以下指令在数据库内建立表,django将默认生成app名_class名的数据表,本例中应生成app_user_message表。
*注:1:若运行第一条指令提示:Unknown command,请将以上命令更改为对应版本下的命令,如“manage.py validate及 manage.py syncdb)
2:若提示“App ‘app_user’ could not be found.“请检查是否已在settings中添加app并保存。*
使用命令行查看数据库:可见已生成空的数据表app_user_message,其中id为系统自动添加的。(注:testdata数据库下的其他表为未注释掉的默认应用生成的,为使用方便可在上一步中注释或删除默认应用)
2. views.py部分
定义insert函数:
def insert(request):
if request.method == "POST":
username = request.POST.get("username", None)
password = request.POST.get("password", None)
models.message.objects.create(username=username, password=password)
models.message.save()
return render_to_response('insert.html')1
2
3
4
5
6
7
定义list函数:
def list(request):
people_list = models.message.objects.all()
c = Context({"people_list":people_list})
return render_to_response("showuser.html",c)1
2
3
4
注:Insert接收网页的post数据并将传入的用户名、密码数据存储到数据库中;List将数据库内存储的数据读出并展示出来。其中引用库函数如下:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from app_user import models
from django.shortcuts import render_to_response
from django.template import Context1
2
3
4
5
6
3.templates部分
新建html文件
insert.html
用户登录1
2
3
4
5
6
7
8
9
10
11
12
13
14
showuser.html
Title信息展示
用户名 | 密码 |
---|
{% for line in people_list %}
{{line.username}}{{line.password}}{% endfor %}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
4. 测试应用
1.配置urls.py:保留原配置,并添加url路径
from django.conf.urls import url
from django.contrib import admin
from app_user import views
urlpatterns = [
url(r'^insert/',views.insert),
url(r'^show/',views.list),
url(r'^admin/', admin.site.urls),
]1
2
3
4
5
6
7
8
9
2.浏览器测试
点击提交发现403错误,在settings文件内进行修改即可。
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['*']1
2
3
4
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]1
2
3
4
5
6
7
8
9
再次输入提交并在数据库内进行数据查询
信息展示测试:
至此,本项目已算基本完成,实现了简单的数据存储查询展示功能。
(对于数据库命令行操作不熟悉的可以使用图形化界面管理数据库,更直观也更方便)