Python自学笔记

来源:互联网 发布:大圣归来 制作软件 编辑:程序博客网 时间:2024/04/28 22:31

Falsk 安装命令

然后配置虚拟目录,输入:

virtualenv myvir

并且我们可以在电脑中看到这个目录,然后继续运行:

cd D:\FlaskDemo\myvir\Scripts

然后:activate.bat

进入了虚拟环境,然后:

easy_install Flask

最后执行

cd D:\FlaskDemo\apppython hello.py

使用下面的命令可以创建一个project

django-admin.py startproject mysite

启动刚刚创建的Project
runserver命令。默认情况下runserver的启动端口是8000,如果需要更改端口号,可以将其以参数的形式传进去
python manage.py runserver (CD D:\DjangoFirstDemo 项目根目录) (访问 http://127.0.0.1:8000/blog/index/)

启动交互式的命令模式
通常需要测试一些简单的Django代码,这时就可以使用这种交互式的shell来完成

python manage.py shell

创建Django App

python manage.py startapp books

校验Model的有效性
通常为了连接数据库,我们需要创建与数据库表相对应的Model,当Model创建好之后可以使用下面的命令来校验Model的有效性
python manage.py validate # 如果看到了如下的输出信息,表示你的Model没有问题 0 errors found

生成SQL schema
确认Model没有问题时候,Django为我们提供了一个工具帮助生成创建数据库的schema

python manage.py sqlall books

同步Model到数据库

python manage.py syncdbpython manage.py makemigrations myapppython manage.py migrate

django修改了model的调用方法,但是它的思路是没有多大变化的,看看你的每个project下面的每个app中,是不是有一个叫做migrations的东西,而且如果你想验证的话,你可以修改一下app中的model,然后运行python manage.py makemigrations [app_name],然后再看看是不是在相应的文件夹中有新增加的东西。那个东西就是记录你更改记录的文件,如果你换了数据库,运行上面那个命令,就可以将东西同步到数据库中。

Django 还提供了另一个工具方便我们直接登录到数据库中

python manage.py dbshell

打印出app中包括的所有模型的sql语言表示

python manage.py sqlall blog

接着介绍time模块中常用的几个函数:

索引(Index) 属性(Attribute) 值(Values) 0 tm_year(年) 比如2011 1 tm_mon(月) 1 - 12 2 tm_mday(日) 1 - 31 3 tm_hour(时) 0 - 23 4 tm_min(分) 0 - 59 5 tm_sec(秒) 0 - 61 6 tm_wday(weekday) 0 - 6(0表示周日) 7 tm_yday(一年中的第几天) 1 - 366 8 tm_isdst(是否是夏令时) 默认为-1

Peewee使用

字段类型表格

Field Type Sqlite Postgresql MySQL CharField varchar varchar varchar FixedCharField char char char TextField text text longtext DateTimeField datetime timestamp datetime IntegerField integer integer integer BooleanField integer boolean bool FloatField real real real DoubleField real double precision double precision BigIntegerField integer bigint bigint SmallIntegerField integer smallint smallint DecimalField decimal numeric numeric PrimaryKeyField integer serial integer ForeignKeyField integer integer integer DateField date date date TimeField time time time TimestampField integer integer integer BlobField blob bytea blob UUIDField text uuid varchar(40) BareField untyped not supported not supported

peewee 超级轻量的一个ORM模块, 而且操作数据非常之简单。

根据数据库表生成模型

python -m pwiz -e mysql -H localhost -p3306 -uroot -Pkkd93kd  web_db > db.py

模型样例

from peewee import *database = MySQLDatabase('web_db', **{'host': 'localhost', 'password': 'kkd93kd  ', 'port': 3306, 'user': 'root'})class UnknownField(object):    passclass BaseModel(Model):    class Meta:        database = databaseclass SyShieldOrder(BaseModel):    _id = PrimaryKeyField()    order_up_day = IntegerField(null=True)    order_up_hours = IntegerField(null=True)    order_up_moon = IntegerField(null=True)    order_up_quarter = IntegerField(null=True)    order_up_week = IntegerField(null=True)    order_up_year = IntegerField(null=True)    tu_shopid = CharField(null=True)    class Meta:        db_table = 'sy_shield_order'class SyShieldUser(BaseModel):    _id = PrimaryKeyField()    tu_account = CharField(null=True)    tu_area = CharField(null=True)    tu_city = CharField(null=True)    tu_commence = DateField(null=True)    tu_contract = DateField(null=True)    tu_cost = IntegerField(null=True)    tu_domain = CharField(null=True)    tu_nick = CharField(null=True)    tu_platform = CharField(null=True)    tu_province = CharField(null=True)    tu_realcost = IntegerField(null=True)    tu_shopid = CharField(null=True)    tu_version = CharField(null=True)    class Meta:        db_table = 'sy_shield_user'