#Django
三握手
四挥手
虚拟环境下打开终端
**1.安装pip ?*sudo spt insttall python-pip3
**2.安装virtualenv :**pip3 install virtualenv
**3.创建虚拟环境文件夹:**mkdir acci
**进入文件夹:**cd acci
配置虚拟环境:
pythopython@buntuS:~/acci$ virtualenv -p /usr/bin/python3 acci
激活虚拟环境(linux):
python@buntuS:~$ source /home/python/acci/bin/activate
激活虚拟环境(windows):
C:\Users\BOSS>cd D:\djangofile\env61\Scripts\
D:\djangofile\env61\Scripts>activate
安装虚拟环境下的gjango:
(acci) python@buntuS:~$ pip3 install django==1.11
关闭虚拟环境: deactivate
4.创建django项目:
python@buntuS:~$ mkdir d1
python@buntuS:~/d1$ django-admin.py startproject d1
python@buntuS:~/djangofile/wuyifan$ django-admin.py startapp login
5.在pychaim打开项目d1
6.设置中配置虚拟环境acci
7.打开左下角Terinal
python manage.py runserver 127.0.0.1:8000
templates
在创建templates中在项目settrings中添加
‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)],
postman在ubuntu中安装:
1.wget https://dl.pstmn.io/download/latest/linux64 -O postman.tar.gz
2.sudo tar -xzf postman.tar.gz -C /opt
3.rm postman.tar.gz
4.sudo ln -s /opt/Postman/Postman /usr/bin/postman
不好意思问,比较内向,跨不出这个坎。没什么不好意思,不懂的就要问,每个人都有能学习的地方,就好多问。
线程
进程
url路由基础:
path传多个参:
urls:path('login1/<int:year>/<int:month>/<str:num>/',views.login1,name='login1'),
views:
def login1(request,year,month,num):
print('-----')
print(year,month,num)
return render(request, 'login1.html')
创建数据库:
models:
class Student(models.Model):
name = models.CharField(max_length=30)
city = models.CharField(max_length=60)
age = models.CharField(max_length=20)
sex = models.CharField(max_length=10)
def str(self):
return self.name
admin:
admin.site.register(Student)
setting:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘student’,
‘USER’: ‘root’,
‘PASSWORD’: ‘mysql’,
‘HOST’: ‘127.0.0.1’,
‘POST’: 3306
}
}
后端数据:
(env520) python@buntuS:~/djangofile/models528$ :python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 127.0.0.1:8000
!!??数据库中文字符设置
windows:
在解决这个问题一直在纠结怎么修改mysql本身的中文字符修改。
后来发现其实你在创建数据库的时候没有没有设置好中文字符集的编辑!!!
在创建库的时候设置utf8字符集就ok啦(蛋疼,这个bug花了我一天的时间!!!)
创建数据库:
CREATE DATABASE PyDB
CHARACTER SET ‘utf8’
COLLATE ‘utf8_general_ci’;
查看字符类型:SHOW variables LIKE ‘%char%’;
修改字符集:mysql> set character_set_results=utf8;
**查看数据库编码:**SHOW CREATE DATABASE db_name;
**查看表编码:**SHOW CREATE TABLE tbl_name;
**查看字段编码:**SHOW FULL COLUMNS FROM tbl_name;
linux:
https://www.cnblogs.com/cml-py/p/9668644.html
(1)动态设置
创建数据库:
CREATE DATABASE PyDB
CHARACTER SET ‘utf8’
COLLATE ‘utf8_general_ci’;
选择此数据库:
USE PyDB;
创建表:
CREATE TABLE PyTable (
username VARCHAR(10),
useraddr VARCHAR(10)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
(2)改变默认编码
在mysql下,先执行命令:SHOW variables LIKE ‘%char%’;
查看数据库默认编码是latin1。
以root身份更改mysql的配置文件
在/etc/my.cnf 或 /etc/mysql/my.cnf 添加以下指令并保存:
[client]
default-character-set = utf8
[mysqld]
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
然后重启mysql:service mysql restart
再次查看:SHOW variables LIKE ‘%char%’;
可以看到编码已经是UTF8。
网页跳转》返回
!!??cookie
设置静态文件
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static/img'),
os.path.join(BASE_DIR, 'static/media'),]
图片:
{% load static %}
<img src="{% static 'w1.jpg' %}" alt="" height="50">bboy wing<a href="{% url 'wing' %}"><button style="width:70px">个人资料</button></a><br>
视频:
<video width="320" height="240" controls>
<source src="{% static 'v1.mp4' %}" type="video/mp4">
!!??字典图片同时显示
delete from 表名 #删除表内数据
drop 表名 #删除表
!!??添加装饰器
!!??上传文件
form表单
二、html前端
overflow:scroll 设置页面滚动
JS:http://www.w3school.com.cn/js/js_operators.asp
!!??数据创建表
??_mysql.connection.query(self, query)
django.db.utils.OperationalError: (1074, “Column length too big for column ‘info’ (max = 21845); use
BLOB or TEXT instead”)
改用mysql使用
小说网页项目:
!!??注册页面只能输入数字
通过添加cookie来保存
img_name = username + '.jpg'
sql = "insert into app64_user(User_name,Password,Photo)""VALUES ('" + un + "', '" + pw + "', '" + img + "')"
通过添加cookie来保存
需要要用到form表单
file_path = os.path.join('static/img', img_name)
f = open(file_path, 'wb+')
for chunk in up_file.chunks():
f.write(chunk)
f.close()
时间:
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
Redis
??批量操作
#批量操作
conn_r.mset(a='abcd', b='bcde', name='胖胖')