商品网站建设实验记录,中国轻工建设协会网站,中装建设市值,黄金网软件app大全下载一、路由系统 1.如何实现伪静态 在cnblogs中#xff1a;https://www.cnblogs.com/wangwei5979/p/11160708.html
而我们自己写的#xff1a;
http://127.0.0.1:8000/up_studnet/?id12同样是网页 为何cnblogs这样设计
原因#xff1a;
1就是因为比较美观
2由于使用搜索引擎来…一、路由系统 1.如何实现伪静态 在cnblogs中https://www.cnblogs.com/wangwei5979/p/11160708.html
而我们自己写的
http://127.0.0.1:8000/up_studnet/?id12同样是网页 为何cnblogs这样设计
原因
1就是因为比较美观
2由于使用搜索引擎来搜索我们所需要的内容使第一种的方式更容易被各个搜索引擎所收录被搜索到的概率就高我们自己写的会被搜索引擎认知为动态网页而第一个方式就是伪静态。例题
http://127.0.0.1:8000/up_studnet/?id12http://127.0.0.1:8000/up_studnet/12/
如何实现在urls.py里在url中添加这样的正则匹配
[url(r^index/(\w)/(\w)/, index),
url(r^test/(?Pid\w)/(?Pname\w)/, test),]def test(request, name, id):
print(id , name)return HttpResponse(test)此时就不需要用id某个值来进行传值避免了使用来操作2.路由正则与反向路由 在url里
url(r^test2/, test2)
在html中会匹配以test2/开头的所有接下来的网页可以url(r^test2/$, test2)
只能匹配/test2/的网页了还可以自己定义404
url(r^, notfound) 需要写到最下面在定义了这个统配之后所有在url没有的 都会走这个自定义的404了反向路由
后台url
url(r^logindjsajdbjsabdsabdbsabdhsabdhbsahbdsaasa/$, login, namexxx)前台
form action{% url xxx %}input typetext
/form3.路由分组 有许多相同的方法可以写在一个py文件里django也有这个方法可以通过创建app来完成在创建django时只可以带着创建一个app文件。
django创建app
python3 manage.py startapp 自定义app名称路由分组总urls.py;
url(r^app02/, include(app02.urls)),
url(r^app03/, include(app03.urls)),分app下的 urls.py:
from app03 import viewsurlpatterns [url(r^students/, views.studnets)]
然后在app下的views.py里写方法 二、函数视图 FBV:
function based viewCBV:
class based viewurls.py:
url(r^login/, views.Login.as_view()),views.py:
from django.views import Viewclass Login(View):def get(self, request):return render(request, login.html)def post(self, request):
uname request.POST.get(username)print(uname)
return HttpResponse(ok)原理
get 请求数据
post提交数据
delete 删除数据
put 更新数据
patch 更新部分数据ps:
form表单提交 只支持get、post ajax支持核心def dispatch(self, request, *args, **kwargs):super(Login, self).dispatch(request, *args, **kwargs)
可以创建dispatch方法来做数据的限制 三、Django的ORM Django的ORM跟sqlalchemy一样都是操作mysql数据库的。
在Django的ORM中
orm配置:
a.创建数据库
create database 数据库名b.配置mysql数据库的链接
DATABASES {# default: {# ENGINE: django.db.backends.sqlite3,# NAME: os.path.join(BASE_DIR, db.sqlite3),# }default: {ENGINE: django.db.backends.mysql,NAME: xxx, ## 数据库名称USER: xxx,## 数据库用户名称PASSWORD: xxx, ## 安装 mysql 数据库时输入的xxx 用户的密码HOST: 127.0.0.1,}}c. 注册app:
INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,app02,app03]
d. 需要将mysqldb换成pymysql
python3:pymysqlpython2:MySQLdb在总的的 __init__.py文件里
import pymysql
pymysql.install_as_MySQLdb()e创建表 命令在app文件的models里可以创建如下表
class Classes(models.Model):cidmodels.AutoField(primary_keyTrue)cname models.CharField(max_length32, nullTrue)然后再Terminal里python manage.py makemigrationspython manage.py migrate转载于:https://www.cnblogs.com/wangwei5979/p/11191503.html