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  

image

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

image

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

settigs.py: 默认的数据库

image

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

image

 

django之登录默认的admin界面

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

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

image

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

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

image

image

其他参考

清空数据库:

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,对于操作数据,还有一些小测试非常方便。

image

posted @ 2018-07-31 19:05  小a玖拾柒  阅读(223)  评论(0编辑  收藏  举报