创建项目
$ django-admin startproject mysite
mysite/ 项目根文件夹,可以重命名
manage.py: 一个可以用来和Django交互的命令行工具
里面的第二个mysite/ 文件夹,真正的项目名字
mysite/settings.py: 配置文件
mysite/urls.py: 项目的URL配置文件.
mysite/wsgi.py: web的网管配置文件
测试
python3.7 manage.py runserver
默认是在127.0.0.1:8000
创建Poll(投票)应用
创建之后会新建polls文件夹
在views.py创建第一个视图
创建urls.py文件
访问polls
第二部分,创建数据
在settings配置数据库引擎,默认是sqlite,也支持mysql,postgres等数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
在settings注册新建的polls APP
INSTALLED_APPS = [
'polls.apps.PollsConfig', # register polls
初始化数据库
python manage.py migrate - 写入数据库。初次运行时候是Django框架自带的一些数据会写入数据库。
可以通过pycharm查看
根据官方教程在polls APP下创建poll model.py
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
执行python manage.py makemigrations polls 之后在polls下面会生成一个0001——initial.py文件,里面是自动生成的在数据库建表的代码。
再次执行python manage.py migrate
Django会根据我们model里面的数据在sqlite数据库建表
数据库建表部分已经完成!
写入数据
官方教程采用API写入方法(python manage.py shell)有兴趣同学可以去看看。通过交互式方式写入数据太麻烦,可以直接采用python的sqlite包写入,参考文档
import sqlite3
import time
current = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
conn = sqlite3.connect('../Django_polls/db.sqlite3')
c = conn.cursor()
c.execute("INSERT INTO polls_question "
"(question_text, pub_date) "
"VALUES ('what is your name','{0}')".format(str(current)))
conn.commit()
执行之后,查询数据库确认
通过Admin页面管理数据
创建超级用户
$ python3.7 manage.py createsuperuser
使用刚刚创建的super user在admin页面登陆
http://127.0.0.1:8000/admin/
通过这个页面可以管理用户
通过修改polls/admin.py 文件可以在admin页面管理我们的polls数据
from django.contrib import admin
from .models import Question
admin.site.register(Question)
再次访问这个页面可以看到polls一栏
通过这个web页面可以对数据库进行增删查改。
比如增加一个问题:
大功告成