Django--基础知识

Django--基础知识
jwang安装
安装: |
创建项目
pycharm中可直接创建 |
Django
配置目录
与Django一样名字的目录为配置目录 |
app操作
自己建立的app包中: |
文件发送
html: |
数据库连接
1.与settings在相同文件夹下创建:my.cnf普通文件
# my.cnf |
2.settings设置:databases 中将本身数据库配置替换成mysql的配置代码
# settings.py |
3.安装pymysql :
pip install pymsql |
4.Django使用mysql:settings同级的__init__中增加代码:
|
数据库操作
1.命令行:在manage.py同级目录下执行
python3 manage.py migrate —>在mysql中直接创建django内置的表 |
|
2.orm:通过对象操作数据库
(1)在views同级的models.py中编写定义自己的数据库表:即class创建
例如:创建一个文章发布的数据库 |
(2)在settings:
installed_apps=[‘添加自己创建的app,即views所在文件夹名’ 例:’app1’] |
(3)生成数据库表:命令行执行:
1.python3 manage.py makemigrations (会在migrations文件夹下生成一个数据库迁移文件) |
注意:1执行成功的迁移文件会在数据库中django_migrations表中也创建一个该记录
必须同时存在才行 不然会一直报错:table
解决:
(1)删除migrations中的相关文件 再删除数据库表中的对应的记录 重新执行上述两个命令
(4)数据库表数据读取并在html中显示出来:
1.创建html相关网页
2.views:
创建函数提取:
引入models中的相关class 即2(1)中创建的相关表的类名
from app1.models import Article
编写发送函数:
def article(requests):
#相当于select * from article where id = 1 语句(并未执行):
data = Article.objects.filter(id=1)
#切片执行该语句:
res = data[0]
return render(requests,’article.html’,{html中{{}}}的对应值dict})
3.配置urls :与上面urls配置一样 先导入再添加
admin用户创建
1.命令行:
python3 manage.py createsuperuser (本次设置user:wangqi password:wang1995) |
2.添加数据库到admin:
(1)admin文件中添加代码
导入models中创建的数据库类名:
from app1.models import Article
添加到admin中:
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
pass
(2)浏览器中进入admin即有自己创建的数据库,可以进行相关插入等操作
外部app(或者html)
1.在django文件夹下:
python3 manage.py startapp ‘名字’ 创建新的app |
2.将其外部的网页代码放入django 项目下
3.配置路径
settings installed_apps添加该app名 templates:添加html存放路径 |
4.配置urls 先连接index.html看是否成功
5.设置css/js/images
1) python中 提供 win+r 可以查询+替换修改代码中的相关代码
2) 在使用正则表达式时需要勾选Regex
3) 查询:(css/.*\.css) 加括号表示一个整体 \ 转译
4) 替换:{% static ‘$1’ %} $1表示匹配(3)中的第一个括号里的东西 再replace
6.建立数据库:
1)modele:建表 + 命令行操作数据库链接
2)admin建立后台
3)settings设置路径 databases添加数据库my.cnf文件位置
4)views添加查询和插入函数 将切片转到html代码中去:
html中循环:{% for %} 循环代码 {% endear %}
例如
views:
def index_movie(requests):
data = Movie.objects.all()
return render(requests, 'index.html', {‘data’:data}
html:
{% for movie in data %}
{{ movie.title }}
{% endfor %}
模版中切片:



