路由系统
1. 伪静态:
https://www.cnblogs.com/linhaifeng/articles/7133167.html
伪静态的原因:
a. 美观
b. seo (搜索引擎优化技术): 就是研究各大搜索引擎的收录规则
2. 路由分发:
url:
1. 伪静态:
https://www.cnblogs.com/linhaifeng/articles/7133167.html
伪静态的原因:
a. 美观
b. seo (搜索引擎优化技术): 就是研究各大搜索引擎的收录规则
2. 路由分发:
url:
通过正则匹配完成路由的分发
3. django创建app:
python3 manage.py startapp 自定义app名称
python3 manage.py startapp 自定义app名称
app02:
admin.py : 写和django-admin相关的配置
admin.py : 写和django-admin相关的配置
创建app 将功能分快化易于维护
4.路由分组
总urls.py;
url(r'^app02/', include('app02.urls')),
url(r'^app03/', include('app03.urls')),
分appurls.py:
from app03 import views
4.路由分组
总urls.py;
url(r'^app02/', include('app02.urls')),
url(r'^app03/', include('app03.urls')),
分appurls.py:
from app03 import views
urlpatterns = [
url(r'^students/', views.studnets)
]
函数视图
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):
]
函数视图
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')
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)
ORM (操作数据库pymysql)
1. orm配置:
a.创建数据库
b.配置mysql数据库的链接:
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 's8day61', ## 数据库名称
'USER': 'root',
'PASSWORD': '123', ## 安装 mysql 数据库时,输入的 root 用户的密码
'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
app下的 __init__.py文件
import pymysql
pymysql.install_as_MySQLdb()
e:创建表 命令:
python manage.py makemigrations
python manage.py migrate
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)
ORM (操作数据库pymysql)
1. orm配置:
a.创建数据库
b.配置mysql数据库的链接:
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 's8day61', ## 数据库名称
'USER': 'root',
'PASSWORD': '123', ## 安装 mysql 数据库时,输入的 root 用户的密码
'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
app下的 __init__.py文件
import pymysql
pymysql.install_as_MySQLdb()
e:创建表 命令:
python manage.py makemigrations
python manage.py migrate