赞
踩
1.创建项目
打开某个目录,进入。
“C:\Users\梁瑾怡\PycharmProjects\pythonProject\venv\Scripts django-admin.exe” + startproject 项目名称
如果在环境变量里面的话
django-admin startproject +项目名 :比较标准
也可以如下这样创建项目
会加点东西:
多了一个template目录,直接删除掉
setting文件,多加了一组数据
57行【os.path.join[BASE_DIR,‘template’]】删除掉
manage.py 【项目管理,启动项目,创建app,数据库的管理,常常用】
asgi.py 【接受网络请求,不要动】
wsigi.py 【接受网络请求,不要动】
urls.py 【全部的路径,和函数的对应关系,常常操作的文件】
settings.py 【项目配置,常常操作的文件】
- 3.APP
项目
app 用户管理 【表结构,html,css】
app 订单管理
app 后台管理
app 网站
创建一个app
.\manage.py startapp app01
D:. │ manage.py │ ├─app01 │ │ admin.py【django提供admin后台管理,不用动】 │ │ apps.py [固定不用动] │ │ models.py【**重要**】对数据库操作 │ │ tests.py 【单元测试不用动】 │ │ views.py 【**重要**】一调用url中,就会触发这个py.属于视图函数。 │ │ __init__.py │ │ │ └─migrations 【数据库变更记录不用动】 │ __init__.py │ └─mysite │ asgi.py │ settings.py │ urls.py │ wsgi.py │ __init__.py │ └─__pycache__ settings.cpython-38.pyc __init__.cpython-38.pyc
4.快速上手
启动项目
python manage.py runserver 8000
点击这个网页,就可以查看的。http://127.0.0.1:8000/index/
4.1页面
url ----view,里面一个网址对应一个函数
4.2 templates
4.3 静态文件
在开发过程中,一定要新建这几个包。
4.5
模板语法
直接使用{{}}来进行
案例:伪联通消息中心
4.6 请求与响应
案例:用户登录
出现403报错
403 Forbidden. CSRF token missing or incorrect
在返回页面的views的方法上添加一个
@csrf_exempt 往后看,不一定的
并且导入模块
from django.views.decorators.csrf import csrf_exempt
然后页面去掉 {% csrf_token %} 就能正常使用
原文链接:https://blog.csdn.net/weixin_41782332/article/details/81140172
表单的代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>用户登陆</h1> <form method="post" action="/login/"> <input type="text" name="user" placeholder="用户名"> <input type="password" name="pwd" placeholder="密码"> <input type="submit" value="提交"> <span style="color:red;">{{ error_msg }}</span> </form> </body> </html>
样子如下
逻辑代码
@csrf_exempt 必须放到这个函数上,不然没有效果
def login(request):
if request.method == "GET":
return render(request, "login.html")
# return HttpResponse("登陆成功")
username = request.POST.get("user")
password = request.POST.get("pwd")
if username == '123' and password == "123":
# return HttpResponse("登陆成功")
return redirect("https://www.hao123.com")
# # return HttpResponse("登陆失败")
return render(request, 'login.html',{"error_msg":"用户名或密码错误"})
逻辑描述:
1.打开登录界面,输入账号密码
2.如果正确,重定向
3.不正确,在原有的html上传入error_msg,渲染后才显示出来。
DATABASES = {
'default': {
# 说明你要连的库为mysql
'ENGINE': 'django.db.backends.mysql',
# 数据库名称
'NAME': 'student',
# IP 本地为127.0.0.1
'HOST': '127.0.0.1',
# 端口默认是3306 oracel默认端口1521
'PORT': '3306',
'USER': 'root',
'PASSWORD': '123456'
}
}
7.5 django操作表
在models中来创建表
from django.db import models
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
创建表的名字需要注意一下
列会自动多了个id,表名:app名字_类名(小写)
执行命令(当前目录必须是根目录,才能找到manage.py)
python manage.py makemigrations
python manage.py migrate
app一定要提前注册,没有注册,表不会提交到数据库。
mysql的查看
C:\windows\system32>net start mysql 服务名无效。 请键入 NET HELPMSG 2185 以获得更多的帮助。 C:\windows\system32>mysql admin -V mysql Ver 8.0.20 for Win64 on x86_64 (MySQL Community Server - GPL) C:\windows\system32>net start mysql 服务名无效。 请键入 NET HELPMSG 2185 以获得更多的帮助。 C:\windows\system32>services.msc C:\windows\system32>**net start mysql80** 请求的服务已经启动。 请键入 NET HELPMSG 2182 以获得更多的帮助。 C:\windows\system32>**mysql -h 127.0.0.1 -uroot -p123456** mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 8.0.20 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
create database student; 建库
show databases; 查看库
use student; 进入student表
show tables; 显示
desc app01_userinfo; 查看 app01_userinfo表
删除列没差,但是增加列有讲究
删除表,就是注释后在进行提交就删掉了。
删除列,就是注释后,再提交就删掉了。
!!!修改表一定要注意下,增加列的时候,一定要对列里面的内容进行设置。
不然很容易进行报错的。
增加列,会对之前未填补的空白进行处理,两种处理方法
from django.db import models
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
# 表建好后,再加如列,新增列需要对应的数据。
data = models.IntegerField(null=True,black=True) # 一种是默认为空
age = models.IntegerField(default=2) # 一种是默认为2
7.6 django操作表中的数据
案例:用户管理
展示用户列表
记得引入
from app01.models import UserInfo
添加数据库
遇到问题,先看注释,根据注释来检查代码的问题。
这个错误提示是,没有返回的return。
在user/list/上添加一个小按钮
删除用户
http://127.0.0.1:8000/info/delete/?nid=1
http://127.0.0.1:8000/info/delete/?nid=2
http://127.0.0.1:8000/info/delete/?nid=3
def 函数(request):
nid = request.GET.get("nid")
UserInfo.object.filter(id=nid).delete()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。