标签:model word ase install blog 配置 put asa 添加
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=12 http://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 views urlpatterns = [ url(r‘^students/‘, views.studnets) ] 然后在app下的views.py里写方法
二、函数视图
FBV: function based view CBV: class based view urls.py: url(r‘^login/‘, views.Login.as_view()), views.py: from django.views import View class 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:
pymysql
python2:
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 makemigrations
python manage.py migrate
标签:model word ase install blog 配置 put asa 添加
原文地址:https://www.cnblogs.com/wangwei5979/p/11191503.html