以用户注册为例
用户在页面网址栏中输入正确地址,进入urls路由到对应的视图函数中,视图函数返回到路由中对应的前端html文件,前端文件在用户输入models表中合法的内容后,通过
<input class="btn btn-primary btn-block" type="submit" value="注册">
input 控件,类型为submit(在点击注册按钮时提交页面中所有数据,可以在views文件中要什么获取什么),之后用户点击注册按钮,将form表单中的数据全部提交,在views视图文件中通过post(密文)或get(明文)方式获取前端数据,如果是post,要在form表单下添加 {% csrf_token %}
CSRF(跨域请求攻击)
html文件中:
action请求的地址,空为返回当前界面 method请求的方式
<form action="" method="post"> {% csrf_token %}
form表单中的文本输入框:
<input type="text" id="firstName" name="firstName" >
views文件中:
login_valid = ("firstName") #前端界面中的name值
然后实例化表单中的内容
t=Student() #Student为models文件中的表t.firstName=firstName #t.firstName中的firstName要与表单里出现的同名t.save() #保存到数据库中return render(request,"seller/login.html",locals()) #需要正确的html路径
通过return又返回到前端界面上
这样就完成了注册
create database 库名 charset=utf8;
一定要加charset=utf8,不然会在加载前端界面时出现1366的错误
Django鼓励多模块设计,快速开发
第一个static下的与app同名只不过首字母小写的seller是识别目录
Seller的app中含子urls,在Qshop父urls中用include包含
父urls
from django.urls import path,include
urlpatterns = [path('admin/', admin.site.urls),path('seller/',include("Seller.urls")),
]
子urls
from django.urls import path
from Seller.views import *
urlpatterns=[path('index/',index),path('login/',login),path('gad/',goods_add),path('glt/',goods_list),
]
底下的static在虚拟环境中Qshop目录下输入
python manage.py collectstatic
指令,收集所有APP中的static的静态文件到该static文件中
templates(检索目录)是app下的固定名字,不能少一个s,这个目录会自动检索里面的html文件,在settings里面不用设置
因为settings中已经自动设置好了
settings中还有以下设置,其中STATIC_URL与MEDIA_URL不能相同,media目录会自动创建
STATIC_URL = '/static/'
STATICFILES_DIRS=(os.path.join(BASE_DIR,"static"),
)MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,"static") #上传图片时的路径
直接对接数据库
models.ForeignKey(表名, on_delete=True) #一对多关系ForeignKey 外键,on_delete=True在删除的时候连带关系也删除
models.TextField() #文本框
models.ImageField(upload_to = "image") #注册时的图片上传到image文件夹中
models.EmailField() #邮箱格式
models.ManyToManyField(表名) #多对多关系
基于js的一个局部提交,不影响用户体验的技术,不刷新界面
本文发布于:2024-01-28 00:40:33,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063736303603.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |