Django操作与内容
一、路由系统
1.如何实现伪静态
在cnblogs中:https://www.cnblogs.com/wangwei5979/p/11160708.html
而我们自己写的:
http://127.0.0.1:8000/up_studnet/?id=12同样是网页 为何cnblogs这样设计
原因:
1就是因为比较美观
2由于使用搜索引擎来搜索我们所需要的内容使,第一种的方式更容易被各个搜索引擎所收录,被搜索到的概率就高,我们自己写的会被搜索引擎认知为动态网页,而第一个方式就是伪静态。例题:
http://127.0.0.1:8000/up_studnet/?id=12http://127.0.0.1:8000/up_studnet/12/
如何实现:在urls.py里,在url中添加这样的正则匹配,
[url(r'^index/(\w+)/(\w+)/', index),
url(r'^test/(?P<id>\w+)/(?P<name>\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, name='xxx')前台:
<form action="{% url 'xxx' %}"><input type="text">
</form>
3.路由分组
有许多相同的方法可以写在一个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):cid=models.AutoField(primary_key=True)cname = models.CharField(max_length=32, null=True)然后再Terminal里python manage.py makemigrationspython manage.py migrate
转载于:https://www.cnblogs.com/wangwei5979/p/11191503.html
Django操作与内容相关推荐
- Django 操作Mysql数据库 对表进行增删改查
为什么80%的码农都做不了架构师?>>> 首先说明:以下方法都是根据表已有的字段添加数据,若想新增字段,则需在类里面新建静态字段, 可参考Django 操作数据库建表 ,增删 ...
- Django操作数据库
文章目录 Django操作数据库 Django访问流程 空项目结构 ASGI和WSGI区别 HelloWord views和url配置 目录 讲解 效果 模板 模板应用实例 目录结构 新建html文件 ...
- python读取文件内容操作_Python 3.6 读取并操作文件内容
下面为大家分享一篇Python 3.6 读取并操作文件内容的实例,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 所使用python环境为最新的3.6版本 Python中几种对文件的操作方法: ...
- JS-元素的样式操作-文本内容-位置
JS-元素的样式操作-文本内容-位置 1 回顾 1.1 从文档中获取元素 1. 通过 ID 名document.getElementById()2. 通过标签名document.getElements ...
- APIS——获取dom对象、操作元素内容和属性、间歇函数
APIS 变量声明 Web API基本认知 作用和分类 DOM DOM树 DOM对象 获取DOM对象 根据CSS选择器来获取DOM元素(重点) 其它获取DOM元素方法(了解) 操作元素内容 操作元素属 ...
- 2020年制冷与空调设备运行操作考试内容及制冷与空调设备运行操作多少钱
题库来源:安全生产模拟考试一点通公众号小程序 2020年制冷与空调设备运行操作考试内容及制冷与空调设备运行操作多少钱,包含制冷与空调设备运行操作考试内容答案和解析及制冷与空调设备运行操作多少钱练习.由 ...
- 2021年制冷与空调设备运行操作考试内容及制冷与空调设备运行操作模拟试题
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年制冷与空调设备运行操作考试内容为正在备考制冷与空调设备运行操作操作证的学员准备的理论考试专题,每个月更新的制冷与空调设备 ...
- 2021年R1快开门式压力容器操作考试及R1快开门式压力容器操作考试内容
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年R1快开门式压力容器操作考试为正在备考R1快开门式压力容器操作操作证的学员准备的理论考试专题,每个月更新的R1快开门式压 ...
- 2021年制冷与空调设备运行操作考试内容及制冷与空调设备运行操作实操考试视频
题库来源:安全生产模拟考试一点通公众号小程序 制冷与空调设备运行操作考试内容是安全生产模拟考试一点通总题库中生成的一套制冷与空调设备运行操作实操考试视频,安全生产模拟考试一点通上制冷与空调设备运行操作 ...
最新文章
- php insert failed,较大的MySQL INSERT语句导致PHP错误
- 移位寄存器专题(verilog HDL设计)
- wordpress连不上mysql_WordPress 无法连接 Mysql8 的问题
- echart 折线图设置y轴单位_echarts折线图有两个图例时如何实现分别采用两个不同单位的y轴...
- python鼠标键盘操作 PyUserInput
- Centos7 安装和配置MySQL5.7
- wxWidgets:wxFilePickerCtrl类用法
- Android中List、Set、Map数据结构详解
- AOJ 6.Hero In Maze
- 计算机网络 --- 网络层IP数据报
- python自定义修饰器_Python概述
- 硬笔行书字帖3500常用字_练字的字帖怎么选择?(硬笔)
- SpringBoot整合QueryDSL
- 【架构】分布式架构介绍及实现(简略)
- 十年育林,百度NLP已枝繁叶茂
- python unit test什么意思_Pycharm上python和unittest两种姿势傻傻分不清楚
- 关于苹果公证(Apple Notarizition)机制的一些总结
- 我终于明白了!!!类、成员变量、方法、以及如何定义他们,还有static到底干啥用?
- 终极孵化器:仿生婴儿的美丽新世界
- aspose-words 解决Linux word转pdf 乱码和出现小方块问题