day61

day 61  路由,orm
##################################
 
路由系统:
1.伪静态:搜索引擎喜欢.html结尾的文件,所以要搞这个伪静态
seo:    搜索引擎优化技术,就是研究各大网站搜索引擎的收录规则.
html里面.meta的标签:用来描述整个网站信息.
 
    
keywords关键字,就是你搜索的时候搜索这些字可以搜出来这个网站
 
###如何实现伪静态
正则表达式匹配
url(r'^index/(\w+)/', index),
 
相应的需要在函数里接受这个值
def index(request,name):
    return HttpResponse('OK')
 
 
##在最下面加入
自定义一个404页面
def notfound(request):
return HttpResponse("404 not found")
 
url(r'^',notfound),
#############
####反向路由:直接可以通过xxx来识别
html里面
 
 
<form action="{% url 'xxx' %}">
    用户:<input type="text" name="username">
    密码:<input type="password" name="pwd">
    <input type="submit" value="提交">
 
后台里
 
url(r'^login/',login,name='xxx'),
 
#############路由分组
所有的业务逻辑处理函数,都写到一起了,需要更改
##django创建app
python3(看你安装的python.exe文件,如果是python3就写python3) manage.py startapp app01
 
app01里面的文件
admin.py是写与django-admin有关的配置的
apps:配置,用得少
models:orm数据表模型
tests:测试用的
views:视图函数(业务逻辑的)
##如果app01和app02还有03里面都有views,导入的话,就冲突了.
涉及到路由分组
首先总的urls里面要导入include
url(r'^app02/',include('app02.urls'))
 
然后到app02下面的urls里面的配置
from django.conf.urls import url,include
from app02 import views
 
urlpatterns =[
 
url(r'^teachers/',views.teacher)
]
去找views下面的teacher
###views文件
from django.shortcuts import render,HttpResponse
 
# Create your views here.
def teacher(request):
return HttpResponse("teacher")
####结果
 
顺序图
 
######视图函数
FBV:用函数写视图
CBV:用类写视图
#######首先要导入在views文件里面,主要是CBV
 
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')
 
#####urls文件路由
url(r'^login/',views.Login.as_view()),
 
#######html里面
<form action="/app03/login/" method="post">
用户:<input type="text" name="username">
密码:<input type="password" name="pwd">
<input type="submit" value="提交">
 
######orm配置
1创建数据库
2.配置文件里面配置
 
'default': {
                            'ENGINE': 'django.db.backends.mysql',
                            'NAME': 's8day61',    ## 数据库名称
                            'USER': 'root',
                            'PASSWORD': '123',    ## 安装 mysql 数据库时,输入的 root 用户的密码
                            'HOST': '127.0.0.1',
}
3注册app
配置文件里面INSTALLED_APPS下面加上app02,和app03
在里面配置才会生成相应的表
###将mysqldb换成pymysql
app下的 __init__.py文件
 
 import pymysql
 pymysql.install_as_MySQLdb()
 
####然后再models.py里面,创建表
from django.db import models
 
# Create your models here.
#id可以不写,会自动生成
class UserInfo(models.Model):
    id=models.AutoField(primary_key=True)
    name=models.CharField(max_length=32,null=True)
    age=models.CharField(max_length=32,null=True)
    email=models.CharField(max_length=32,default="")   ##或者设置默认值
####然后再到命令行里面敲命令
python manage.py makemigrations
                    
python manage.py migrate
 
##改列名还是需要走命令
###外键   一对多
##部门
class Department(models.Model):
    title=models.CharField(max_length=32,null=True)
##用户表加一个列,和Department表建立外键关系
ud=models.ForeignKey("Department",null=True)
 
posted @ 2019-07-18 21:14  轩辕12  阅读(114)  评论(0编辑  收藏  举报