昨日のレビュー
1 django目录介绍
-urls 路由和视图函数的映射关系
-models 视图函数
-models 数据库相关操作
-settings 配置文件
2 app是什么?
-项目中独立的功能,通常做成一个app
-python3 manage.py startapp app01
3 django项目的启动方式
-命令行:python manage.py runserver 127.0.0.1:8080
-pycharm
4 配置文件
-是否调试模式:开发阶段都是true,上线都是false
-注册app
-中间件
-数据库链接配置
-静态文件配置
5 静态文件
-1 先创建目录(static)
-2 在settings.py中配置:
STATIC_URL = '/static/'
# 再配一个STATICFILES_DIRS列表(列表内写路径)
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
-3 在 static文件夹中创建目录:
-js
-css
-img
-其他第三方模块
-4 模版文件中使用 (本质原理)
-/static/js/jquery.min.js
6 路由配置
-url(r'^index', views.index),
7 视图
-请求对象
request.method---(get/post)
request.GET---(当作字典)
request.POST---(当作字典)
ps:post请求也可以在地址栏携带数据
-响应对象
HttpResponse 返回字符串
render(request,'模版名字') 返回模版
redirect('/index或者http://www.baidu.com') 返回重定向
8 登陆案例
今日
1ログイン機能、リンクmysql
2MTV和MVC
1 django是MTV架构,本质也是MVC
-M:model,数据库相关操作
-T:template,模版文件(就是MVC中的V)
-V:view,视图(路由+V=MVC中的C)
2 MVC架构:主流的web框架都是MVC
-web应用分为模型(M),视图(V)和控制器(C)
-M:model,数据库相关操作
-C:controler 控制器,逻辑相关,逻辑代码
-V:view 视图
3 详情:
https://www.cnblogs.com/liuqingzheng/p/13725794.html
3Djangoリクエストのライフサイクル
0 近几年python中的几个web框架,sanic,fastapi(异步框架)
1 python中的web服务器都符合wsgi协议
2 web服务器,任何语言都会有一个web服务器,负责把http请求转成这门语言的变量
-python:wsgiref(性能很低),uwsgi(c语言写的,200多并发量)
-java:tomcat,jboss(300多并发量)
-php:php服务器
3 请求生命周期图解:
4仮想環境の説明、pycharm構成
1 虚拟环境作业:隔离环境,每个项目有自己依赖的模块和包,不同模块和包的版本 就不会相互影响
2 a路径、b基于哪个解释器、c是否继承基础解释器的模块、d是否可以被其他项目 使用
5オームの概要
1 orm:对象关系映射(跟语言无关)
数据库中的表-------->对应程序的一个类
数据库中的一行数据--->对应程序中的一个对象
2 python中常见orm框架
-django的orm框架
-sqlachemy orm框架
3 java,java中写web的项目:
-ssh框架:spring+structs(有漏洞)+hibernate(orm框架)
-ssm框架:spring+springMVC+mybatis(orm框架,可以写原生sql)
-sb框架:springboot,内置tomcat(现在主流)
-springcloud:微服务(现在主流)
4 orm能干的事
-创建表(不能创建数据库,手动创建数据库)
-增加删除表内字段
-增删查改数据
7djangoでのormの使用
0 sqlite:也是个数据库,文件数据库,一个库就是一个文件,不需要单独安装
-现在就在用,也要用到关系数据库,不需要连数据库,
-移动开发本地存储数据,存在sqlite中
1 创建个UserInfo表,在model中写一个类
2 表中有字段(类属性),字段有属性,
第一步在models中要写类:
class UserInfo(models.Model):
# 字段属性-->后面那个对象决定的
# id字段自增,并且是主键
id = models.AutoField(primary_key=True)
# 名字字段是varchar类型,长度为32(唯一约束,是否是索引,默认值是,是否可为空)
name = models.CharField(max_length=32)
# 密码字段
password = models.CharField(max_length=64)
第二步,把表创建出来(执行两个命令):
python manage.py makemigrations
python manage.py migrate
8ユーザー登録、ショーケース
models.pyでのUserInfoクラスは、継承models.Modelsに必ずして、テーブルを作成するためにコマンドを使用して1つのライト。
2 tempates下register.html作成し、のUserInfoによって必要な形でフォームを送信します。
3をurls.pyで次の場所にルーティングを追加します。url(^ register、 "views.register")、url(^ userlist、 "views.user_list")
4 views.pyに登録関数を記述し、ページで取得したデータを使用してユーザーオブジェクトをインスタンス化し、戻ります。 redirect( '/ userlist')、ビューユーザーリストページにジャンプして
user_list関数を記述し、models.UserInfo.object.all()を使用してすべてのユーザーデータをクエリし、テンプレートファイルのコンテンツを置き換えて、render(request、 'userlist'を返します。 html '、context =(' userlist ':userlist))
5 tempatesの下にuserlist.htmlを作成し、userlist内のデータをトラバースして表示します。
操作
1整理する
2登録、ユーザーリストの表示
3登録後、ログインページ(pymysqlまたはorm)にジャンプします
4ログイン後にジャンプしてユーザーリストを表示する
補足:
1静的ファイルの性質
STATIC_URL = '/static/'
URL中的/static/是模版文件中的src地址,也可以改成其他.
而且之前在本地中的地址都是'../static/css/my.css'
而在模版文件中的地址则是'/static/css/my.css'
这里面的的static是来自于STATIC_URL里的'/static/',浏览器请求模版文件之后再请求静态文件(2次请求),这个请求不是在模版文件所在的路径向上去找,而是直接通过STATIC_URL去请求的.
------------------------------------------------------------
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
这里的是自己创建的本地静态文件的文件夹路径,可以随意命名,但最好叫static文件夹.
示されているように:
2最長のvarcharタイプは何ですか
varchar(2555)utf8 = 2555 * 2超長ではない
varchar(2555)utf8mb4 = 2555 * 4超長