Python学习---Django的基础操作180116

Django创建数据库操作

django流程之model实例

settigs.py:更改Django2.0.1的配置,更新为之前的路径配置

'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 设置templates的路径为Django以前版本
# 'DIRS': [], # 注释掉该行,此为Django 2.0.1最新版本
# 'django.middleware.csrf.CsrfViewMiddleware',

views.py

# Create your tests here.
from django.shortcuts import render, HttpResponse
from blog import models
def userInfo(request):
# 这里需要判断前台数据提交的方法是POST还是GET的[大写]
if request.method == "POST":
get_username = request.POST.get("username", None)
get_sex = request.POST.get("sex", None)
get_email = request.POST.get("email", None)
models.UserInfo.objects.create( # 进行ORM映射,同时Insert数据到数据库
username=get_username,
sex=get_sex,
email=get_email
)
user_list = models.UserInfo.objects.all() # 获取数据库里面的数据
print(user_list)
return render(request, 'index.html', {"user_list": user_list}) # 用{}传递一个对象给前端

mysite2/urls.py

from django.contrib import admin
from django.urls import path
from blog import views urlpatterns = [
path('admin/', admin.site.urls),
path(r'userInfo/', views.userInfo), # 将路径名跟函数进行映射
]

models.py :创建ORM映射模版

from django.db import models
class UserInfo(models.Model):
username = models.CharField(max_length=64) # 创建数据库字段,并设置长度为64k
sex = models.CharField(max_length=64)
email = models.CharField(max_length=64)

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<form method="post" action="/userInfo/" name="userInfo">
<p>姓名<input type="text" name="username"></p>
<p>性别<input type="text" name="sex"></p>
<p>邮箱<input type="text" name="email"></p>
<p><input type="submit" value="提交"></p>
</form><hr><hr>
<table border="1">
<tr>
<th>姓名</th>
<th>性别</th>
<th>邮箱</th>
</tr>
{% for i in user_list %} {#Django里面封装的模版语法,用于for循环#}
<tr>
{# 这里是变量,所以需要2个{}来进行变量引用[规定的] #}
<th>{{ i.username }}</th> {# 这里类似字典的取值 i[username] #}
<th>{{ i.sex }}</th> {# 这里类似i[sex] #}
<th>{{ i.email }}</th> {# 这里类似i[email] #}
</tr>
{% endfor %} {# 注意结束for循环 #}
</table>
</body>
</html>

创建数据库以及同步数据库数据

生成同步数据库的脚本:python manage.py makemigrations 

同步数据库:  python manage.py migrate  

Python学习---Django的基础操作180116

注意1:如果安装完成后打不开DB数据库,是因为没有安装连接数据库的jar包,PyCharm可以帮助我们进行安装

Python学习---Django的基础操作180116

注意2:在开发过程中,数据库同步误操作之后,难免会遇到后面不能同步成功的情况,解决这个问题的一个简单粗暴方法是把migrations目录下的脚本(除__init__.py之外)全部删掉,再把数据库删掉之后创建一个新的数据库,数据库同步操作再重新做一遍。

settigs.py: 默认的数据库

Python学习---Django的基础操作180116

注意3:重启Django服务,查看页面数据

Python学习---Django的基础操作180116

django之登录默认的admin界面

创建项目好了以后我们会发现有一个默认的admin的函数,对应的就有个URL的地址:http://127.0.0.1:8080/admin/

当我们访问http://127.0.0.1:8080/admin/时,会出现:

Python学习---Django的基础操作180116

我们需要为进入这个项目的后台创建超级管理员:python manage.py createsuperuser,设置好用户名和密码后便可登录啦!

后台输入命令创建用户:python manage.py createsuperuser

Python学习---Django的基础操作180116

Python学习---Django的基础操作180116

其他参考

清空数据库:

python manage.py  flush

查询某个命令的详细信息:

django-admin.py  help  startapp

admin 是Django 自带的一个后台数据库管理系统。
终端上输入python manage.py 可以看到详细的列表,在忘记子名称的时候特别有用

python manage.py 

启动当前项目的django交互界面 :

python manage.py  shell

注意:这个命令和直接运行 python 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。

Python学习---Django的基础操作180116

上一篇:Django之ORM操作(聚合 分组、F Q)


下一篇:Python之路【第二十二篇】:Django之Model操作