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  

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

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

settigs.py: 默认的数据库

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

django之登录默认的admin界面

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

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

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

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

其他参考

清空数据库:

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的更多相关文章

  1. Python学习---Django的基础学习

    django实现流程 Django学习框架:     #安装: pip3 install django          添加环境变量    #1  创建project       django-ad ...

  2. Python学习笔记之基础篇(-)python介绍与安装

    Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...

  3. python学习日记(基础数据类型及其方法01)

    数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...

  4. Python学习day12-函数基础(2)

    <!doctype html>day12博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { pos ...

  5. Python学习课程零基础学Python

    python学习课程,零基础Python初学者应该怎么去学习Python语言编程?python学习路线这里了解一下吧.想python学习课程?学习路线网免费下载海量python教程,上班族也能在家自学 ...

  6. Emacs学习心得之 基础操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础操作 1.前言与学习计划2.Emacs基础操作 一. 前言与学习计 ...

  7. Python学习day16-模块基础

    <!doctype html>day16 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...

  8. Python学习day11-函数基础(1)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  9. Django (学习第一部 基础操作)

    django 1 django 文件相关信息 2 Python创建django 3 命令行创建django 4 Django 必会三板斧 5 静态文件配置 6 request对象方法 7 pychar ...

随机推荐

  1. linux centos 7.5 安装mysql5.7

    1 下载tar包,这里使用wget从官网下载(注:下载地址随时可能有变动,wget命令默认下载目录为当前所在文件夹) wget https://dev.mysql.com/get/Downloads/ ...

  2. Visual Studio、.net framework、CLR与JDK、JRE、JVM、Eclipse

    .net平台                                        java平台 开发工具                   Visual Studio            ...

  3. ExcelHelper----根据指定样式的数据,生成excel(一个sheet1页)文件流

    /// <summary> /// Excel导出类 /// </summary> public class ExcelHelper { /// <summary> ...

  4. [转]从客户端中检测到有潜在危险的Request.Form值的详细解决

    本文转自:http://www.knowsky.com/887593.html asp.net1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力.当用户试图用之类的输入影响页面返回结 ...

  5. 【转】Java Spring AOP详解

    一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...

  6. Axios的详细配置和相关使用

    Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. Features 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http  ...

  7. 字符串匹配问题(lfyzoj)

    问题描述 字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配.如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如.输入: [()] 输 ...

  8. Win7系统服务优化完全攻略

      前文提到Windows系统启动的原理,其中加载各项系统服务是影响系统启动时间的重要因素,之前软媒在Win7之家(http://www.win7china.com/)和Vista之家(http:// ...

  9. [javaSE] 网络编程(浏览器客户端-自定义服务端)

    获取ServerSocket对象,new出来构造参数:int类型端口号 调用ServerSocket对象的accept()方法,得到Socket对象 获取PrintWriter对象,new出来,构造参 ...

  10. 后台数据校验-BeanCheck

    package com.ldf.domain; import java.text.ParseException; public class UserCheck { //从表单获取的数据 private ...